package smallfrench.ui;

import java.awt.Font;
import java.awt.FontFormatException;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.URL;

import javax.swing.ImageIcon;

public class Ressources {

	/**
	 * La police monospace du JRE.
	 */
	public static final Font policeMonospaceJRE = new Font(
			Font.MONOSPACED, Font.PLAIN, 12);

	private static Font policeMonospace;

	static {
		try {

			InputStream is = Ressources.class.
					getResourceAsStream("polices/DroidSansMono.ttf");

			policeMonospace = Font.createFont(Font.TRUETYPE_FONT, is);

		} catch (FontFormatException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

	/**
	 * 
	 * @return La police monospace embarquée.
	 */
	public static Font getPoliceMonospace() {
		return policeMonospace;
	}

	/**
	 * 
	 * @param nom Le nom du fichier, extension ".png" ajoutée automatiquement
	 * @param descr Une courte description de l’image
	 * @return L’icone.
	 */
	public static ImageIcon getIconePNG(String nom, String descr) {
		URL url = FenetrePrincipale.class.getResource(
				"icones/" + nom + ".png");
		return new ImageIcon(url, descr);
	}

	public static ImageIcon getIcone(String nom) {
		return getIconePNG(nom, "");
	}

	/**
	 * Petit utilitaire pour lire un fichier UTF-8.
	 * @param is
	 * @return Le contenu de <code>is</code> lu.
	 * @throws IOException
	 */
	public static String lireFluxUTF8(InputStream is)
			throws IOException {

		InputStreamReader lecteur = new InputStreamReader(is, "UTF-8");
		BufferedReader br = new BufferedReader(lecteur);
		StringBuffer buffer = new StringBuffer();

		int ch;
		while ((ch = br.read()) > -1) {
			buffer.append((char) ch);
		}
		return buffer.toString();
	}


}
